// 上面这个代码处理过度动画（默认加上不用管）
document.addEventListener('DOMContentLoaded', () => {
    setTimeout(() => {
        document.body.classList.add('sidenav-pinned')
        document.body.classList.add('ready')
    }, 200)
})

// 配置基地址
axios.defaults.baseURL = 'http://ajax-api.itheima.net'

//---------------------------------------------

// 添加请求拦截器
axios.interceptors.request.use(function(config) {
    // 在发送之前做些什么
    // 如果有token的情况，应该将token携带在请求头中（在拦截器中统一操作）
    const token = localStorage.getItem('user-token')
    if (token) {
        // 如果有token，需要携带在请求头部
        // console.log(config)
        config.headers.Authorization = token
    }

    return config // 这里返回的是请求的配置项，不能删除
}, function(error) {
    // 对请求错误做点什么
    return Promise.reject(error)
})

// 添加响应拦截器
axios.interceptors.response.use(function(response) {
    // 对响应数据做点什么
    return response.data // response 就是响应的结果
}, function(error) {
    // 如果控制台报响应的错误，都是走错误响应 4xx 5xx
    // console.dir(error) 有错误一律使用dir打印
    // 处理响应错误
    // 对响应错误做点什么
    if (error.response.status === 401) {
        // token 过期，需要将token信息移除，个人信息移除，拦截到登录，重新登录
        localStorage.removeItem('user-token')
        localStorage.removeItem('user-name')
        location.href = './login.html'
    }
    return Promise.reject(error)
})

//---------------------------------------------

// bootstrap轻提示 封装轻提示函数 tip 
const toastBox = document.querySelector('#myToast')
const toast = new bootstrap.Toast(toastBox, {
    animation: true, // 开启过渡动画
    autohide: true, // 开启自动隐藏
    delay: 3000 // 3000ms后自动隐藏
})
const tip = (msg) => {
    toastBox.querySelector('.toast-body').innerHTML = msg
    toast.show()
}

// 显示用户名称和退出登录
const userName = document.querySelector('.navbar .font-weight-bold') //头像账号 Admin
const logout = document.querySelector('#logout') //退出按钮

//登录页或注册页，没有个人信息的标签，无需展示名字
if (userName) { // 必须加
    userName.innerHTML = localStorage.getItem('user-name')
}

// 有退出按钮 才加退出功能
if (logout) {
    logout.addEventListener('click', () => {
        localStorage.removeItem('user-token')
        localStorage.removeItem('user-name')
        location.href = './login.html'
    })
}